In the last few years, a very advanced data processing device has become commercially available. This device, known as a microprocessor, is sold by various companies and generally includes a plurality of address terminals, several bi-directional data terminals and internal control circuitry for determining several types of machine cycles to be performed. These microprocessors are produced in accordance with integrated circuit technology of the PMOS and NMOS type. The versatility of these microprocessors or "microprocessing chips", as they are known, is well known in the art of controlling machine operation. A variety of attempts has been made to utilize the standard microprocessor, as the heart of a programmable controller which can control machines and logic systems. However, generally the attempts to use the microprocessor for a controller function have resulted in complex software requirements. The microprocessor has relatively limited capabilities. Four or eight bit data bus are generally available and only sixteen address lines. In addition, the internal processing by the microprocessor is somewhat limited so that a substantial number of software steps or program steps must be generated to perform even somewhat simple logic operations. It is often difficult to debug a system employing a microprocessor because there is a distinct inability to stop the microprocessor at a selected position and then read the internal condition of the internal registers and modify these registers without complicated software. Also, the ability to interrupt the microprocessor for jumping to a subroutine by external stimuli is limited by the circuitry or locations available for this purpose. It is desirable to provide a large number of interrupt call conditions, wherein the general or executive program can be temporarily stopped and a standard preset subroutine program processed. This is very beneficial in reading or writing by the controller at certain isolated locations. In other words, it is sometimes desirable to ignore several inputs until there is a change in their state, at which time a separate subroutine can be processed. Consequently, the subroutines are processed only when required. In order to do this, it is necessary to provide a great number of separate and distinct interrupt call conditions. An inexpensive simple arrangement for expanding the number of interrupt call conditions is not now available in the technology of microprocessors.
Since a standard microprocessor includes four or eight data terminals, it is extremely difficult to process single bit information of the type contemplated in prior U.S. Pat. No. 3,827,030. Such single bit information requires extensive software for masking of data lines and for shifting data between lines. This again makes the use of a microprocessor somewhat complicated, especially for relatively simple logic conditions such as AND, OR, COR, CAND, INVERT, etc. Microprocessing technology also has limitations regarding debugging of output or input terminals. In many instances, the terminal must actually be connected and operated before the system may be debugged. This is a substantial disadvantage in use of a microprocessor for any machine or system control function.
The present invention relates to a programmable controller using a microprocessor and novel external hardwired circuitry to overcome distinct disadvantages of prior attempts to use a standard microprocessor chip for a machine or system control function. In the past, the use of a microprocessor for control functions has required acceptance of the severe limitation of the microprocessor and have, therefore, utilized extensive and complex software for processing the desired input and output information. Thus, a relatively large number of memory locations were required for storing the extensive software program to employ a microprocessor as a controlling system. The present invention has overcome this disadvantage and has provided unique, novel external hardwired circuitry for allowing the use of a microprocessor, with all its standard limitations, in a programmable controller which can process eight bit data words and single bit data without extensive complex software. Thus, software needed to convert the microprocessor chip to a viable control system is substantially reduced, with the resultant substantial reduction in the cost of programming and the probability of unavoidable error. Consequently, the present invention relates to an improved programmable controller which employs a standard microprocessor. This is distinguished from prior attempts which essentially programmed a microprocessor for a control function. In those systems, all of the components were standard shelf items that are put together in known form to produce a control function under the auspices of a complex software program. This is the antithesis of the present invention, wherein a standard microprocessor is a component, which is used with additional circuitry to produce a total programmable controller that requires a minimum of software and still produces desired control functions necessary for controlling even complex machinery and systems.